Page({
  data: {
    iconList: [], // 功能图标列表（可根据需求添加数据）
    nurseList: [], // 护工数据列表（核心渲染数据）
    currentTab: 0, // 当前选中的标签页
    currentPage: 1, // 当前页码
    pageSize: 5, // 每页条数
    totalCount: 0, // 总条数（用于判断是否有更多数据）
    nurseAvatars: [

          
      'https://i.imgs.ovh/2025/11/11/C7MYdU.webp',
      'https://i.imgs.ovh/2025/11/11/C7MJ5H.webp',
      'https://i.imgs.ovh/2025/11/11/C7M40X.webp',
      'https://i.imgs.ovh/2025/11/11/C7MYdU.webp',
      'https://i.imgs.ovh/2025/11/11/C7MEzQ.webp'
    ],
    defaultAvatar: 'https://via.placeholder.com/100', // 默认头像（确保有效）
    showModal: false, // 弹窗显示状态
    currentNurse: {}, // 当前选中的护工数据
    isLoading: false // 防止重复请求
  },

  // 页面加载时初始化数据
  onLoad(options) {
    this.setData({ currentPage: 1 });
    this.getNurseData(); // 加载第一页数据
  },

  // 获取护工列表数据（核心方法）
  getNurseData() {
    if (this.data.isLoading) return; // 防止重复请求

    this.setData({ isLoading: true });
    wx.showLoading({ title: '加载中...' });

    wx.request({
      url: 'http://localhost:8080/nurse/getPage',
      method: 'GET',
      data: {
        pageNo: this.data.currentPage,
        pageSize: this.data.pageSize
      },
      success: (res) => {
        console.log('接口返回数据：', res.data); // 调试用

        if (res.data && res.data.code === 200) {
          const newData = res.data.data || {};
          const nurseList = newData.dataList || []; // 接口返回的列表字段是 dataList

          // 第一页覆盖数据，分页加载时追加数据
          const finalList = this.data.currentPage === 1 
            ? nurseList 
            : [...this.data.nurseList, ...nurseList];

          this.setData({
            nurseList: finalList,
            totalCount: newData.totalCount || 0 // 总条数
          });
        } else {
          wx.showToast({ title: '数据获取失败', icon: 'none' });
        }
      },
      fail: (err) => {
        console.error('请求失败：', err);
        wx.showToast({ title: '网络异常', icon: 'none' });
      },
      complete: () => {
        this.setData({ isLoading: false });
        wx.hideLoading();
      }
    });
  },

  // 切换标签页
  switchTab(e) {
    const index = e.currentTarget.dataset.index;
    if (this.data.currentTab === index) return;

    // 切换标签时重置为第一页并重新加载
    this.setData({
      currentTab: index,
      currentPage: 1
    });
    this.getNurseData();
  },

  // 打开护工详情弹窗
  openNurseModal(e) {
    const index = e.currentTarget.dataset.index;
    const nurse = this.data.nurseList[index];
    if (!nurse) return;

    // 匹配头像（索引不足时用默认图）
    const avatar = this.data.nurseAvatars[index] || this.data.defaultAvatar;

    this.setData({
      currentNurse: { ...nurse, avatar }, // 合并护工数据和头像
      showModal: true
    });
  },

  // 关闭弹窗
  closeModal() {
    this.setData({ showModal: false });
  },

  // 点击弹窗背景关闭
  closeModalByBackground() {
    this.closeModal();
  },

  // 阻止弹窗内容事件冒泡
  stopPropagation() {},

  // 下拉刷新
  onPullDownRefresh() {
    this.setData({ currentPage: 1 });
    wx.request({
      url: 'http://localhost:8080/nurse/getPage',
      method: 'GET',
      data: { pageNo: 1, pageSize: this.data.pageSize },
      success: (res) => {
        if (res.data && res.data.code === 200) {
          const newData = res.data.data || {};
          this.setData({
            nurseList: newData.dataList || [], // 修正为 dataList
            totalCount: newData.totalCount || 0
          });
          wx.showToast({ title: '刷新成功', icon: 'success', duration: 1000 });
        } else {
          wx.showToast({ title: '刷新失败', icon: 'none' });
        }
      },
      fail: (err) => {
        console.error('下拉刷新失败：', err);
        wx.showToast({ title: '刷新失败', icon: 'none' });
      },
      complete: () => {
        wx.stopPullDownRefresh(); // 必须停止刷新动画
      }
    });
  },

  // 上拉加载更多
  onReachBottom() {
    const totalPage = Math.ceil(this.data.totalCount / this.data.pageSize);
    if (this.data.currentPage >= totalPage || this.data.isLoading) {
      wx.showToast({ title: '已加载全部数据', icon: 'none', duration: 1000 });
      return;
    }

    // 加载下一页
    this.setData({ currentPage: this.data.currentPage + 1 });
    this.getNurseData();
  },

  // 生命周期默认方法
  onReady() {},
  onShow() {},
  onHide() {},
  onUnload() {},
  onShareAppMessage() {
    return {
      title: '护工列表',
      path: '/pages/nurse/index'
    };
  }
});